package com.java.basis.io.bio.four;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @author wangning
 * @create 2022-01-05 21:01
 */
public class HandlerSocketServerPool {
	//1.创建一个线程池的成员变量用于存储一个线程池对象
	private final ExecutorService executorService;

	//2.创建这个类的对象的时候需要初始化线程池对象
	public HandlerSocketServerPool(int maxThreadNum, int queueSize) {
		executorService = new ThreadPoolExecutor(
				3,
				maxThreadNum,
				120,
				TimeUnit.SECONDS,
				new ArrayBlockingQueue<Runnable>(queueSize));
	}

	//3.提供一个方法来提交任务给线程池的任务队列来缓存，等着线程池来处理
	public void execute(Runnable target) {
		executorService.execute(target);
	}

}
